package asia.hymsk.spring.service;

import asia.hymsk.spring.pojo.Response;

/**
 * @author 花于陌上开
 */
public interface UserService {
    /**
     * 查询用户名是否存在
     *
     * @param userName 用户名
     * @return 验证状态
     */
    Response userNameIsExist(String userName);

    /**
     * 进行图灵测试验证
     *
     * @param parameter 手机号
     * @return (图片信息和)验证状态
     */
    Response getVerificationTuring(String parameter);

    /**
     * 获取验证码
     *
     * @param parameter        手机号
     * @param verificationCode 图灵测试验证码
     * @return 验证状态
     */
    Response sendVerificationCode(String parameter, String verificationCode);

    /**
     * 进行注册
     *
     * @param userName         用户名
     * @param phoneNumber      手机号
     * @param verificationCode 验证码
     * @param password         密码
     * @return 注册状态
     */
    Response userRegister(String userName, String phoneNumber, String verificationCode, String password);

    /**
     * 进行重置密码
     *
     * @param phoneNumber      手机号
     * @param verificationCode 验证码
     * @param password         密码
     * @return 重置密码状态
     */
    Response userResetPassword(String phoneNumber, String verificationCode, String password);

    /**
     * 登录
     *
     * @param parameter 用户名/手机号/邮箱
     * @param password  密码
     * @return 登录状态
     */
    Response login(String parameter, String password);

    Response doRegister(String userName, String email, String password);
}
